/*
 * Copyright (C) 2015 yixun All Rights Reserved.
 * 
 * PremisesDto.java
 */
package com.yixun.qfbao.xf.model.dto;

import com.yixun.qfbao.xf.model.Premises;

import java.math.BigDecimal;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

/**
 * [文件名称]<br>
 * PremisesDto.java<br>
 * <br>
 * [文件描述]<br>
 * 楼盘信息 数据辅助类<br>
 * <br>
 * [修改记录]<br>
 * 2015-10-14 15:34:13 创建 陶俊代码生成器<br>
 *
 * @author 陶俊代码生成器
 * @version 1.00
 */
public class PremisesDto extends Premises {
	private static final long serialVersionUID = 1L;
	/**
	 * 需要正序字段名
	 */
	private List<String> asc;
	/**
	 * 需要逆序字段名
	 */
	private List<String> desc;
	/**
	 * 排序SQL
	 */
	private String orders;

	/**
	 * 需要拼接的sql，用于楼盘查询
	 */
	private String sql;
	/**
	 * 楼盘ID
	 */
	private List<Long> premisesIds;

	/**
	 * 不包含楼盘ID
	 */
	private List<Long> unPremisesIds;

	/**
	 * 开发商ID
	 */
	private List<Long> devCompanyIds;
	/**
	 * 面积
	 */
	private String acreage;
	/**
	 * 面积查询前置条件
	 */
	private Long preAcreage;
	/**
	 * 面积查询后置条件
	 */
	private Long sufAcreage;
	/**
	 * 平均价格前置查询条件
	 */
	private Long preAveragePrice;
	/**
	 * 平均价格后置查询条件
	 */
	private Long sufAveragePrice;
	/**
	 * 分销商（合作机构）ID
	 */
	private Long agenCompanyId;
	/**
	 * 佣金规则父ID
	 */
	private Long ruleParentId;
	/**
	 * 佣金规则分组ID
	 */
	private String groupId;
	/**
	 * 佣金规则字符串
	 */
	private String commissionRuleStr;
	/**
	 * 分销佣金方式
	 */
	private String commissionMode;
	/**
	 * 分销佣金方式字符串
	 */
	private String commissionModeStr;
	/**
	 * 生效时间
	 */
	private Date effectTime;
	/**
	 * 状态
	 */
	private String state;
	/**
	 * 状态中文值
	 */
	private String stateStr;

	/**
	 * 推送的系统
	 */
	private String sysId;

	/**
	 * 是否查询待申请的
	 */
	private String apply;

	/**
	 * 分销审核状态
	 */
	private Long auditStatus;
	
	/**
	 * codeName的集合。分销小程序中用来当并集的查询条件
	 */
	private List<Integer> codes;
	
	/**
	 * 装修类型的集合。分销小程序中用来当并集的查询条件
	 */
	private List<Integer> decorationTypes;

	/**
	 * 排除某个销售状态
	 */
	private String notSaleStatus;
	
	/**
	 * 关联类型
	 */
	private Integer relType;
	
	/**
	 * 关联类型
	 */
	private Integer relFlag;
	
	/**
	 * 关注标识
	 */
	private Integer attentionFlag;

	/**
	 * 收藏店铺标识
	 */
	private Integer shopFlag;
	/**
	 * 销售状态
	 *
	 * @return
	 */
	private List<String> listSaleStatus;

	private List<String> listPremisesStatus;

	private String mobileTemp;

	private Long recommenderCount;

	private String errorMsg;

	private String reportStatus;
	
//	private String 

	public String getErrorMsg() {
		return errorMsg;
	}

	public void setErrorMsg(String errorMsg) {
		this.errorMsg = errorMsg;
	}

	public String getReportStatus() {
		return reportStatus;
	}

	public void setReportStatus(String reportStatus) {
		this.reportStatus = reportStatus;
	}

	public Long getRecommenderCount() {
		return recommenderCount;
	}

	public void setRecommenderCount(Long recommenderCount) {
		this.recommenderCount = recommenderCount;
	}



	public List<String> getListPremisesStatus() {
		return listPremisesStatus;
	}

	public void setListPremisesStatus(List<String> listPremisesStatus) {
		this.listPremisesStatus = listPremisesStatus;
	}

	public String getMobileTemp() {
		return mobileTemp;
	}

	public void setMobileTemp(String mobileTemp) {
		this.mobileTemp = mobileTemp;
	}

	public String getCaseMemberName() {
		return caseMemberName;
	}

	public void setCaseMemberName(String caseMemberName) {
		this.caseMemberName = caseMemberName;
	}

	public String getCaseMemberPhone() {
		return caseMemberPhone;
	}

	public void setCaseMemberPhone(String caseMemberPhone) {
		this.caseMemberPhone = caseMemberPhone;
	}

	/**
	 * 项目负责人姓名(案场人员)
	 */

	private String caseMemberName;
	/**
	 * 项目负责人电话
	 */
	private String caseMemberPhone;

	private List<String> projectCodeM2List;

	public List<String> getProjectCodeM2List() {
		return projectCodeM2List;
	}

	public void setProjectCodeM2List(List<String> projectCodeM2List) {
		this.projectCodeM2List = projectCodeM2List;
	}

	public String getNotSaleStatus() {
		return notSaleStatus;
	}

	public void setNotSaleStatus(String notSaleStatus) {
		this.notSaleStatus = notSaleStatus;
	}

	public Long getAuditStatus() {
		return auditStatus;
	}

	public void setAuditStatus(Long auditStatus) {
		this.auditStatus = auditStatus;
	}

	public String getApply() {
		return apply;
	}

	public void setApply(String apply) {
		this.apply = apply;
	}

	/**
	 * 添加需要正序字段名
	 */
	public void addAsc(String col) {
		if (asc == null) {
			asc = new LinkedList<String>();
		}
		asc.add(col);
	}

	/**
	 * 清空需要正序字段名
	 */
	public void cleanAsc() {
		asc = null;
	}

	/**
	 * 添加需要逆序字段名
	 */
	public void addDesc(String col) {
		if (desc == null) {
			desc = new LinkedList<String>();
		}
		desc.add(col);
	}

	/**
	 * 清空需要逆序字段名
	 */
	public void cleanDesc() {
		desc = null;
	}

	/**
	 * 如果排序SQL为空根据需要正逆序的字段名拼接排序SQL
	 */
	public String getOrders() {
		StringBuilder orderStr = null;
		StringBuilder ascStr;
		StringBuilder descStr;
		if (orders == null) {
			if (asc != null) {
				ascStr = new StringBuilder();
				orderStr = new StringBuilder();
				String pex = "";
				for (String a : asc) {
					ascStr.append(pex + a);
					pex = ",";
				}
				orderStr.append(ascStr.toString() + " ASC");
			}
			if (desc != null) {
				descStr = new StringBuilder();
				String pex = "";
				for (String d : desc) {
					descStr.append(pex + d);
					pex = ",";
				}
				if (orderStr == null) {
					orderStr = new StringBuilder();
					orderStr.append(descStr.toString() + " DESC");
				} else {
					orderStr.append("," + descStr.toString() + " DESC");
				}
			}
			orders = orderStr != null ? orderStr.toString() : null;
		}

		return orders;
	}

	/**
	 * 设置排序SQL
	 */
	public void setOrders(String orders) {
		this.orders = orders;
	}

	private Date updateTimeBefore;
	private Date updateTimeAfter;
	private Date openingTimeBefore;
	private Date openingTimeAfter;
	private Date createTimeBefore;
	private Date createTimeAfter;
	private Date cooperationBeginTimeBefore;
	private Date cooperationBeginTimeAfter;
	private Date checkInTimeBefore;
	private Date checkInTimeAfter;
	private Date cooperationEndTimeBefore;
	private Date cooperationEndTimeAfter;

	private BigDecimal averagePriceEnd;
	private BigDecimal averagePriceBegin;

	/**
	 * 搜索条件
	 */
	private String searchcCondition;

	/**
	 * 户型
	 */
	private String apartmentType;

	/**
	 * 分销审核状态
	 */
	private String distributionStatus;

	private String v10CompanyUuid;

	/**
	 * 楼盘名称（批量导入用）
	 */
	private List<String> premisesList;

	private String premisesName;

	private Long staffId;

	/**
	 * V10楼盘UUID
	 */
	private String estateUuid;

	private String provinceName;
	private String cityName;
	private String areaName;

	@Override
	public String getEstateUuid() {
		return estateUuid;
	}

	@Override
	public void setEstateUuid(String estateUuid) {
		this.estateUuid = estateUuid;
	}

	public BigDecimal getAveragePriceEnd() {
		return averagePriceEnd;
	}

	public void setAveragePriceEnd(BigDecimal averagePriceEnd) {
		this.averagePriceEnd = averagePriceEnd;
	}

	public BigDecimal getAveragePriceBegin() {
		return averagePriceBegin;
	}

	public void setAveragePriceBegin(BigDecimal averagePriceBegin) {
		this.averagePriceBegin = averagePriceBegin;
	}

	public Date getUpdateTimeBefore() {
		return this.updateTimeBefore;
	}

	public void setUpdateTimeBefore(Date updateTimeBefore) {
		this.updateTimeBefore = updateTimeBefore;
	}

	public Date getUpdateTimeAfter() {
		return this.updateTimeAfter;
	}

	public void setUpdateTimeAfter(Date updateTimeAfter) {
		this.updateTimeAfter = updateTimeAfter;
	}

	public Date getOpeningTimeBefore() {
		return this.openingTimeBefore;
	}

	public void setOpeningTimeBefore(Date openingTimeBefore) {
		this.openingTimeBefore = openingTimeBefore;
	}

	public Date getOpeningTimeAfter() {
		return this.openingTimeAfter;
	}

	public void setOpeningTimeAfter(Date openingTimeAfter) {
		this.openingTimeAfter = openingTimeAfter;
	}

	public Date getCreateTimeBefore() {
		return this.createTimeBefore;
	}

	public void setCreateTimeBefore(Date createTimeBefore) {
		this.createTimeBefore = createTimeBefore;
	}

	public Date getCreateTimeAfter() {
		return this.createTimeAfter;
	}

	public void setCreateTimeAfter(Date createTimeAfter) {
		this.createTimeAfter = createTimeAfter;
	}

	public Date getCooperationBeginTimeBefore() {
		return this.cooperationBeginTimeBefore;
	}

	public void setCooperationBeginTimeBefore(Date cooperationBeginTimeBefore) {
		this.cooperationBeginTimeBefore = cooperationBeginTimeBefore;
	}

	public Date getCooperationBeginTimeAfter() {
		return this.cooperationBeginTimeAfter;
	}

	public void setCooperationBeginTimeAfter(Date cooperationBeginTimeAfter) {
		this.cooperationBeginTimeAfter = cooperationBeginTimeAfter;
	}

	public Date getCheckInTimeBefore() {
		return this.checkInTimeBefore;
	}

	public void setCheckInTimeBefore(Date checkInTimeBefore) {
		this.checkInTimeBefore = checkInTimeBefore;
	}

	public Date getCheckInTimeAfter() {
		return this.checkInTimeAfter;
	}

	public void setCheckInTimeAfter(Date checkInTimeAfter) {
		this.checkInTimeAfter = checkInTimeAfter;
	}

	public Date getCooperationEndTimeBefore() {
		return this.cooperationEndTimeBefore;
	}

	public void setCooperationEndTimeBefore(Date cooperationEndTimeBefore) {
		this.cooperationEndTimeBefore = cooperationEndTimeBefore;
	}

	public Date getCooperationEndTimeAfter() {
		return this.cooperationEndTimeAfter;
	}

	public void setCooperationEndTimeAfter(Date cooperationEndTimeAfter) {
		this.cooperationEndTimeAfter = cooperationEndTimeAfter;
	}

	public List<Long> getPremisesIds() {
		return premisesIds;
	}

	public void setPremisesIds(List<Long> premisesIds) {
		this.premisesIds = premisesIds;
	}

	public List<Long> getDevCompanyIds() {
		return devCompanyIds;
	}

	public void setDevCompanyIds(List<Long> devCompanyIds) {
		this.devCompanyIds = devCompanyIds;
	}

	public List<String> getPremisesList() {
		return premisesList;
	}

	public void setPremisesList(List<String> premisesList) {
		this.premisesList = premisesList;
	}

	public String getAcreage() {
		return acreage;
	}

	public void setAcreage(String acreage) {
		this.acreage = acreage;
	}

	public Long getPreAveragePrice() {
		return preAveragePrice;
	}

	public void setPreAveragePrice(Long preAveragePrice) {
		this.preAveragePrice = preAveragePrice;
	}

	public Long getSufAveragePrice() {
		return sufAveragePrice;
	}

	public void setSufAveragePrice(Long sufAveragePrice) {
		this.sufAveragePrice = sufAveragePrice;
	}

	public Long getPreAcreage() {
		return preAcreage;
	}

	public void setPreAcreage(Long preAcreage) {
		this.preAcreage = preAcreage;
	}

	public Long getSufAcreage() {
		return sufAcreage;
	}

	public void setSufAcreage(Long sufAcreage) {
		this.sufAcreage = sufAcreage;
	}

	public Long getAgenCompanyId() {
		return agenCompanyId;
	}

	public void setAgenCompanyId(Long agenCompanyId) {
		this.agenCompanyId = agenCompanyId;
	}

	public Long getRuleParentId() {
		return ruleParentId;
	}

	public void setRuleParentId(Long ruleParentId) {
		this.ruleParentId = ruleParentId;
	}

	public String getGroupId() {
		return groupId;
	}

	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}

	public String getCommissionRuleStr() {
		return commissionRuleStr;
	}

	public void setCommissionRuleStr(String commissionRuleStr) {
		this.commissionRuleStr = commissionRuleStr;
	}

	public String getCommissionModeStr() {
		return commissionModeStr;
	}

	public void setCommissionModeStr(String commissionModeStr) {
		this.commissionModeStr = commissionModeStr;
	}

	public Date getEffectTime() {
		return effectTime;
	}

	public void setEffectTime(Date effectTime) {
		this.effectTime = effectTime;
	}

	public String getCommissionMode() {
		return commissionMode;
	}

	public void setCommissionMode(String commissionMode) {
		this.commissionMode = commissionMode;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getStateStr() {
		return stateStr;
	}

	public void setStateStr(String stateStr) {
		this.stateStr = stateStr;
	}

	public List<Long> getUnPremisesIds() {
		return unPremisesIds;
	}

	public void setUnPremisesIds(List<Long> unPremisesIds) {
		this.unPremisesIds = unPremisesIds;
	}

	public String getApartmentType() {
		return apartmentType;
	}

	public void setApartmentType(String apartmentType) {
		this.apartmentType = apartmentType;
	}

	public String getSearchcCondition() {
		return searchcCondition;
	}

	public void setSearchcCondition(String searchcCondition) {
		this.searchcCondition = searchcCondition;
	}

	public String getDistributionStatus() {
		return distributionStatus;
	}

	public void setDistributionStatus(String distributionStatus) {
		this.distributionStatus = distributionStatus;
	}

	public String getV10CompanyUuid() {
		return v10CompanyUuid;
	}

	public void setV10CompanyUuid(String v10CompanyUuid) {
		this.v10CompanyUuid = v10CompanyUuid;
	}

	public String getSysId() {
		return sysId;
	}

	public void setSysId(String sysId) {
		this.sysId = sysId;
	}

	public String getPremisesName() {
		return premisesName;
	}

	public void setPremisesName(String premisesName) {
		this.premisesName = premisesName;
	}

	public List<String> getListSaleStatus() {
		return listSaleStatus;
	}

	public void setListSaleStatus(List<String> listSaleStatus) {
		this.listSaleStatus = listSaleStatus;
	}

	public Long getStaffId() {
		return staffId;
	}

	public void setStaffId(Long staffId) {
		this.staffId = staffId;
	}

	public String getProvinceName() {
		return provinceName;
	}

	public void setProvinceName(String provinceName) {
		this.provinceName = provinceName;
	}

	public String getCityName() {
		return cityName;
	}

	public void setCityName(String cityName) {
		this.cityName = cityName;
	}

	@Override
	public String getAreaName() {
		return areaName;
	}

	@Override
	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}

	public Integer getRelType() {
		return relType;
	}

	public void setRelType(Integer relType) {
		this.relType = relType;
	}

	public Integer getRelFlag() {
		return relFlag;
	}

	public void setRelFlag(Integer relFlag) {
		this.relFlag = relFlag;
	}

	public List<Integer> getCodes() {
		return codes;
	}

	public void setCodes(List<Integer> codes) {
		this.codes = codes;
	}

	public List<Integer> getDecorationTypes() {
		return decorationTypes;
	}

	public void setDecorationTypes(List<Integer> decorationTypes) {
		this.decorationTypes = decorationTypes;
	}

	public String getSql() {
		return sql;
	}

	public void setSql(String sql) {
		this.sql = sql;
	}

	public Integer getAttentionFlag() {
		return attentionFlag;
	}

	public void setAttentionFlag(Integer attentionFlag) {
		this.attentionFlag = attentionFlag;
	}

	public Integer getShopFlag() {
		return shopFlag;
	}

	public void setShopFlag(Integer shopFlag) {
		this.shopFlag = shopFlag;
	}
	
}
